package outros;

/*
 * Esse arquivo é parte do Software new Recicle
 * 
 * Copyright (C) 2011-$AnoCorrente$ Eduardo Moreira Barbosa
 * Copyright (C) 2011-$AnoCorrente$ João dos Santos Gonçalves
 * Copyright (C) 2011-$AnoCorrente$ Lucas Ximenes da Fonseca
 * 
 * new Recicle é um Software Livre: Você pode redistribuí-lo e/ou modificá-lo
 * de acordo com os termos da Licença Pública Geral GNU (GNU General Public License)
 * conforme publicada pela Free Software Foundation (FSF). Essa permissão é atribuída
 * na versão 3 da Licença, ou (na sua opinião) qualquer versão.
 * 
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa,
 * se não, escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
 * Boston, MA  02110-1301  USA
 * 
 * Se você tiver alguma dúvida e/ou quiser dar suporte ao desenvolvimento, favor entrar em
 * contato nos e-mails <barbosa.edrd@gmail.com>, <john.jsg@hotmail.com>, <lxf.lucas@gmail.com>.
 */


public class Cnpj{
	
        /**
         * Cacular CNPJ
         * 
         * @param digitos   Dígitos do CNPJ
         * @return          Verdadeiro se o CNPJ for correto ou Falso se incorreto
         * @author          Eduardo Moreira Barbosa
         * @author          João dos Santos Gonçalves
         * @author          Lucas Ximenes da Fonseca
         */
    
	public static boolean calculaCnpj(String digitos){
		int n1;int n2;int n3;int n4;int n5;int n6;int n7;int n8;int n9;int n10; int n11; int n12; int digito1;int digito2;int dig1;int dig2; 
		char c1 = digitos.charAt(0);
		n1 = (int) c1-48;
		char c2 = digitos.charAt(1);
		n2 = (int) c2-48;
		char c3 = digitos.charAt(3);
		n3 = (int) c3-48;
		char c4 = digitos.charAt(4);
		n4 = (int) c4-48;
		char c5 = digitos.charAt(5);
		n5 = (int) c5-48;
		char c6 = digitos.charAt(7);
		n6 = (int) c6-48;
		char c7 = digitos.charAt(8);
		n7 = (int) c7-48;
		char c8 = digitos.charAt(9);
		n8 = (int) c8-48;
		char c9 = digitos.charAt(11);
		n9 = (int) c9-48;
		char c10 = digitos.charAt(12);
		n10 = (int) c10-48;
		char c11 = digitos.charAt(13);
		n11 = (int) c11-48;
		char c12 = digitos.charAt(14);
		n12 = (int) c12-48;
		char digito1c = digitos.charAt(16);
		dig1 = (int) digito1c-48;
		char digito2c = digitos.charAt(17);
		dig2 = (int) digito2c-48;
		
		int soma = (n1*6)+(n2*7)+(n3*8)+(n4*9)+(n5*2)+(n6*3)+(n7*4)+(n8*5)+(n9*6)+(n10*7)+(n11*8)+(n12*9);
		int resultado1 = soma % 11;
						
		int soma2 = (n1*5)+(n2*6)+(n3*7)+(n4*8)+(n5*9)+(n6*2)+(n7*3)+(n8*4)+(n9*5)+(n10*6)+(n11*7)+(n12*8)+(resultado1*9);
		int resultado2 = soma2 % 11;
		
		if ( resultado1==dig1 && resultado2==dig2){
			return true;
		} else {
			return false;
		}	
	}
	

}